Network based enforcement of geographical compliance

ABSTRACT

Improved systems and methods for enhancing the performance of network based computerized content rendering and hosting and providing of devices, systems and/or platforms by modifying the capabilities and providing non-native functionality to such devices, systems and/or platforms through a novel and improved application, networked based enforcement of geographical compliance, data processing and networking framework.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims the benefit of U.S. Provisional Application Nos.62/924,172, filed Oct. 21, 2019, titled “Integrated Bet Slip forAffiliates,” and 62/924,175, filed Oct. 22, 2019, titled “IntegratedBetslip for Wagering Service Aggregator”, which are incorporated byreference herein in their entirety.

This application includes material that is subject to copyrightprotection. The copyright owner has no objection to the facsimilereproduction by anyone of the patent disclosure, as it appears in thePatent and Trademark Office files or records, but otherwise reserves allcopyright rights whatsoever.

FIELD

The present disclosure relates generally to improving the performance ofnetwork based computerized content rendering and hosting and providingof devices, systems and/or platforms by modifying the capabilities andproviding non-native functionality to such devices, systems and/orplatforms through a novel and improved application, networked basedenforcement of geographical compliance, data processing and networkingframework.

BACKGROUND

Computing devices running native software or web browsers can utilize acomputer network to offload content rendering and data processing toremote computing devices. Such devices can also retrieve data andcontent from remote devices via a computer network. One way ofoffloading content rending and data processing is via use of a webbrowser that can access web services over a computer network such as theInternet.

With the use of a computer network for offloading content rendering anddata processing there are setbacks and tradeoffs. For example, networkperformance in a computer network can be limited by its bandwidth aswell as network delay, quality of service issues, network congestion,and network resilience issues. Also, using a computer network foroffloading content rendering and data processing adds network securityconcerns and consideration of use of data encryption which can burdenadditional computer resources.

SUMMARY

In general, described herein are improved systems and methods forenhancing the performance of network based computerized contentrendering and hosting and providing of devices, systems and/or platformsby modifying the capabilities and providing non-native functionality tosuch devices, systems and/or platforms through a novel and improvedapplication, networked based enforcement of geographical compliance,data processing and networking framework.

In some embodiments described herein, the systems and methods canovercome at least the technical problems mentioned in the backgroundsection above and other parts of the present disclosure as well as othertechnical problems not described herein but recognized by those skilledin the art. In general, described herein are improved systems andmethods that solve such technical problems by enhancing the performanceof network based computerized content rendering and hosting through anovel and improved application, networked based enforcement ofgeographical compliance, data processing and networking framework. Ingeneral, the improved data processing and networking framework caninclude networked based enforcement of geographical compliance and anapplication or website or native application of an affiliate that canprovide front-end content rendering and data processing functionalityfor a user of the web site or native application. And, by beingcommunicatively coupled to the website or native application (such asvia links and/or functions in HTML iframes or in webviews of a nativeapp), one or more servers of a plurality of operators can provideback-end content rendering and data processing functionality for theuser of the website or native application, which includes networkedbased enforcement of geographical compliance.

In some embodiments, for an affiliate application, at least iframes canbe used within a website or webpage to implement modifying thecapabilities and providing non-native functionality as well as networkedbased enforcement of geographical compliance to devices, systems and/orplatforms described herein. In some other embodiments, for theapplication, at least webviews within a native application (such as anative mobile application) can be used to implement modifying thecapabilities and providing non-native functionality as well as networkedbased enforcement of geographical compliance to devices, systems and/orplatforms described herein. In other words, webviews can be used as analternative to iframes inside native apps. Iframes can be used tosupport the affiliate component via a web browser. The information thatis provided into the iframe or webview depending on the implementationcan be information that the affiliate has already inferred, received, orretrieved from a user.

In some embodiments, for the affiliate app or website, the dataaccumulating from populating fields and clicks and other types ofinteractions by users over time as well as the networked basedenforcement of geographical compliance over time allows the affiliate tobuild machine learning models that can more easily predict what contentrendering and data processing customers are going to request as well ashow to better implement networked based enforcement of geographicalcompliance.

In accordance with one or more embodiments, this disclosure providescomputerized methods for enhancing the performance of network basedcomputerized content rendering and hosting and providing of devices,systems and/or platforms as well as for enhancing the networked basedenforcement of geographical compliance, as well as a non-transitorycomputer-readable storage medium for carrying out technical steps of thecomputerized methods. The non-transitory computer-readable storagemedium has tangibly stored thereon, or tangibly encoded thereon,computer readable instructions that when executed by one or more devices(e.g., one or more servers) cause at least one processor to perform amethod for a novel and improved technology for enhancing the performanceof network based computerized content rendering and hosting andproviding of devices, systems and/or platforms as well as for enhancingthe networked based enforcement of geographical compliance.

In accordance with one or more embodiments, a system is provided thatincludes one or more computing devices configured to providefunctionality in accordance with one or more embodiments of a novel andimproved way of enhancing the performance of network based computerizedcontent rendering and hosting and providing of devices, systems and/orplatforms as well as a novel and improved way of enhancing the networkedbased enforcement of geographical compliance.

In accordance with one or more embodiments, functionality is embodied insteps of a method performed by at least one computing device. Inaccordance with one or more embodiments, program code (or program logic)executed by processor(s) of a computing device to implementfunctionality in accordance with one or more embodiments describedherein is embodied in, by and/or on a non-transitory computer-readablemedium.

BRIEF DESCRIPTION OF THE DRAWINGS

The foregoing and other objects, features, and advantages of thedisclosure will be apparent from the following description ofembodiments as illustrated in the accompanying drawings, in whichreference characters refer to the same parts throughout the variousviews. The drawings are not necessarily to scale, emphasis instead beingplaced upon illustrating principles of the disclosure:

FIG. 1 is a schematic diagram illustrating an example of a system withinwhich systems and methods disclosed herein can be implemented accordingto some embodiments of the present disclosure.

FIG. 2 is a schematic diagram illustrating an example of a computingdevice, in accordance with some embodiments of the present disclosure.

FIGS. 3, 5A and 5B are schematic diagrams illustrating exampleworkflows, in accordance with some embodiments of the presentdisclosure.

FIGS. 4A, 4B, and 6 are flowcharts illustrating example methods, inaccordance with some embodiments of the present disclosure.

DESCRIPTION OF EMBODIMENTS

The present disclosure will now be described more fully hereinafter withreference to the accompanying drawings, which form a part hereof, andwhich show, by way of illustration, certain example embodiments. Subjectmatter may, however, be embodied in a variety of different forms and,therefore, covered or claimed subject matter is intended to be construedas not being limited to any example embodiments set forth herein;example embodiments are provided merely to be illustrative. Likewise, areasonably broad scope for claimed or covered subject matter isintended. Among other things, for example, subject matter may beembodied as methods, devices, components, or systems. Accordingly,embodiments may, for example, take the form of hardware, software,firmware or any combination thereof (other than software per se). Thefollowing detailed description is, therefore, not intended to be takenin a limiting sense.

Throughout the specification and claims, terms may have nuanced meaningssuggested or implied in context beyond an explicitly stated meaning.Likewise, the phrase “in one embodiment” as used herein does notnecessarily refer to the same embodiment and the phrase “in anotherembodiment” as used herein does not necessarily refer to a differentembodiment. It is intended, for example, that claimed subject matterinclude combinations of example embodiments in whole or in part.

In general, terminology may be understood at least in part from usage incontext. For example, terms, such as “and”, “or”, or “and/or,” as usedherein may include a variety of meanings that may depend at least inpart upon the context in which such terms are used. Typically, “or” ifused to associate a list, such as A, B or C, is intended to mean A, B,and C, here used in the inclusive sense, as well as A, B or C, here usedin the exclusive sense. In addition, the term “one or more” as usedherein, depending at least in part upon context, may be used to describeany feature, structure, or characteristic in a singular sense or may beused to describe combinations of features, structures or characteristicsin a plural sense. Similarly, terms, such as “a,” “an,” or “the,” again,may be understood to convey a singular usage or to convey a pluralusage, depending at least in part upon context. In addition, the term“based on” may be understood as not necessarily intended to convey anexclusive set of factors and may, instead, allow for existence ofadditional factors not necessarily expressly described, again, dependingat least in part on context.

The present disclosure is described below with reference to blockdiagrams and operational illustrations of methods and devices. It isunderstood that each block of the block diagrams or operationalillustrations, and combinations of blocks in the block diagrams oroperational illustrations, can be implemented by means of analog ordigital hardware and computer program instructions. These computerprogram instructions can be provided to a processor of a general-purposecomputer to alter its function as detailed herein, a special purposecomputer, ASIC, or other programmable data processing apparatus, suchthat the instructions, which execute via the processor of the computeror other programmable data processing apparatus, implement thefunctions/acts specified in the block diagrams or operational block orblocks. In some alternate implementations, the functions/acts noted inthe blocks can occur out of the order noted in the operationalillustrations. For example, two blocks shown in succession can in factbe executed substantially concurrently or the blocks can sometimes beexecuted in the reverse order, depending upon the functionality/actsinvolved.

These computer program instructions can be provided to a processor of: ageneral purpose computer to alter its function to a special purpose; aspecial purpose computer; ASIC; or other programmable digital dataprocessing apparatus, such that the instructions, which execute via theprocessor of the computer or other programmable data processingapparatus, implement the functions/acts specified in the block diagramsor operational block or blocks, thereby transforming their functionalityin accordance with embodiments herein.

For the purposes of this disclosure a computer readable medium (orcomputer-readable storage medium/media) stores computer data, which datacan include computer program code (or computer-executable instructions)that is executable by a computer, in machine readable form. By way ofexample, and not limitation, a computer readable medium can includecomputer readable storage media, for tangible or fixed storage of data,or communication media for transient interpretation of code-containingsignals. Computer readable storage media, as used herein, refers tophysical or tangible storage (as opposed to signals) and includeswithout limitation volatile and non-volatile, removable andnon-removable media implemented in any method or technology for thetangible storage of information such as computer-readable instructions,data structures, program modules or other data. Computer readablestorage media includes, but is not limited to, RAM, ROM, EPROM, EEPROM,flash memory or other solid-state memory technology, CD-ROM, DVD, orother optical storage, magnetic cassettes, magnetic tape, magnetic diskstorage or other magnetic storage devices, or any other physical ormaterial medium which can be used to tangibly store the desiredinformation or data or instructions and which can be accessed by acomputer or processor.

For the purposes of this disclosure the term “server” should beunderstood to refer to a service point which provides processing,database, and communication facilities. By way of example, and notlimitation, the term “server” can refer to a single, physical processorwith associated communications and data storage and database facilities,or it can refer to a networked or clustered complex of processors andassociated network and storage devices, as well as operating softwareand one or more database systems and application software that supportthe services provided by the server. Servers can vary widely inconfiguration or capabilities, but generally a server can include one ormore central processing units and memory. A server can also include oneor more mass storage devices, one or more power supplies, one or morewired or wireless network interfaces, one or more input/outputinterfaces, or one or more operating systems, such as Windows Server,Mac OS X, Unix, Linux, FreeBSD, or the like.

For the purposes of this disclosure a “network” should be understood torefer to a network that can couple devices so that communications can beexchanged, such as between a server and a client device or other typesof devices, including between wireless devices coupled via a wirelessnetwork, for example. A network can also include mass storage, such asnetwork attached storage (NAS), a storage area network (SAN), or otherforms of computer or machine-readable media, for example. A network caninclude the Internet, one or more local area networks (LANs), one ormore wide area networks (WANs), wire-line type connections, wirelesstype connections, cellular or any combination thereof. Likewise,sub-networks, which can employ differing architectures or can becompliant or compatible with differing protocols, can interoperatewithin a larger network. Various types of devices can, for example, bemade available to provide an interoperable capability for differingarchitectures or protocols. As one illustrative example, a router canprovide a link between otherwise separate and independent LANs.

A communication link or channel can include, for example, analogtelephone lines, such as a twisted wire pair, a coaxial cable, full orfractional digital lines including T1, T2, T3, or T4 type lines,Integrated Services Digital Networks (ISDNs), Digital Subscriber Lines(DSLs), wireless links including satellite links, or other communicationlinks or channels, such as can be known to those skilled in the art.Furthermore, a computing device or other related electronic devices canbe remotely coupled to a network, such as via a wired or wireless lineor link, for example.

A computing device can be capable of sending or receiving signals, suchas via a wired or wireless network, or can be capable of processing orstoring signals, such as in memory as physical memory states, and can,therefore, operate as a server. Thus, devices capable of operating as aserver can include, as examples, dedicated rack mounted servers, desktopcomputers, laptop computers, set top boxes, integrated devices combiningvarious features, such as two or more features of the foregoing devices,or the like. Servers can vary widely in configuration or capabilities,but generally a server can include one or more central processing unitsand memory. A server can also include one or more mass storage devices,one or more power supplies, one or more wired or wireless networkinterfaces, one or more input/output interfaces, or one or moreoperating systems, such as Windows Server, Mac OS X, Unix, Linux,FreeBSD, or the like.

For purposes of this disclosure, a client device can include a computingdevice capable of sending or receiving signals, such as via a wired or awireless network. A client device can, for example, include a desktopcomputer or a portable device, such as a cellular telephone, a smartphone, a display pager, a radio frequency (RF) device, an infrared (IR)device, an NFC device, a Personal Digital Assistant (PDA), a handheldcomputer, a tablet computer, a phablet, a laptop computer, a set topbox, a wearable computer, smart watch, an integrated or distributeddevice combining various features, such as features of the forgoingdevices, or the like.

A client device can vary in terms of capabilities or features. Claimedsubject matter is intended to cover a wide range of potentialvariations. For example, a simple smart phone, phablet or tablet caninclude a numeric keypad or a display of limited functionality, such asa monochrome liquid crystal display (LCD) for displaying text. Incontrast, however, as another example, a web-enabled client device caninclude a high-resolution screen, one or more physical or virtualkeyboards, mass storage, one or more accelerometers, one or moregyroscopes, global positioning system (GPS) or otherlocation-identifying type capability, or a display with a high degree offunctionality, such as a touch-sensitive color 2D or 3D display, forexample.

A client device can include or can execute a variety of operatingsystems, including a personal computer operating system, such as aWindows, iOS or Linux, or a mobile operating system, such as iOS,Android, or Windows Mobile, or the like.

A client device can include or can execute a variety of possibleapplications, such as a client software application enablingcommunication with other devices, such as communicating one or moremessages, such as via email, for example Yahoo!® Mail, short messageservice (SMS), or multimedia message service (MMS), for example Yahoo!Messenger®, including via a network, such as a social network,including, for example, Tumblr®, Facebook®, LinkedIn®, Twitter®,Flickr®, or Google+®, Instagram™, to provide only a few possibleexamples. A client device can also include or execute an application tocommunicate content, such as, for example, textual content, multimediacontent, or the like. A client device can also include or execute anapplication to perform a variety of possible tasks, such as browsing,searching, playing, streaming or displaying various forms of content,including locally stored or uploaded images and/or video, or games (suchas fantasy sports leagues). The foregoing is provided to illustrate thatclaimed subject matter is intended to include a wide range of possiblefeatures or capabilities.

Also, for the purposes of this disclosure the term “app” should beunderstood to refer to an application, such as an application that canbe executed on a computing device.

There are many technical problems with a conventional affiliateworkflow. For example, current restrictions from many state regulatorswill not allow users to bet outside the applications or websitesprovided by operators (such as sports betting operators). The knownaffiliates at present redirect the users from their app or website tothe operator's flow. By the redirection, an affiliate can lose controlof the user in a partner page and the user experience is not seamless.

With an integrated bet slip and environment via an affiliateapplication, such as the one described herein, the user can register,deposit and place bets inside an embedded iframe within an affiliate'sapp or website. With such an approach, a user is not redirected torespective remote pages of operators. The user registration,verification, deposit and place bet actions happen within the apps orwebsites (or servers) of the operators, but such things are initiatedvia the affiliate's app or website.

The overall system includes geographical checks, such as via GPS in adevice used by the user for betting. Also, the overall system includesenhanced networked based enforcement of geographical compliance. One ofthe major restrictions on online sportsbook is with geographical checks.Geographical checks can be used to enforce state borders andregulations. A geo check application can be integrated in parts of theaffiliate app and/or an operator's backend component to prevent a userfrom placing bets that violate state regulations. This occurs becausethe geo check can monitor the location of the user to determine whetherthe user is in the appropriate location for making a bet.

In some embodiments, the enhanced networked based enforcement ofgeographical compliance can include a method. The method can includegenerating, by an affiliate application of a betting affiliate, a firstgraphical user interface (GUI) for making a bet in order to show thefirst GUI to a user of a computing device running at least part of theaffiliate application. The method can also include, in response to auser starting a bet via the first GUI, generating, by the affiliateapplication, a unique user identifier (such as through using randomnumber generation). The method can also include sending to a bettingserver of a betting operator, by the affiliate application, the uniqueuser identifier. The unique user identifier can be a link between theaffiliate application, an operator application of the betting operator,and a geolocation compliance component of a geolocation complianceprovider. The method can also include running, via the affiliateapplication, the geolocation compliance component and the operatorapplication. The method can also include initiating, by the operatorapplication, geolocation checks via the geolocation compliancecomponent. The method can also include requesting from a geolocationserver of the operator, by the operator application, a command to sendto a geolocation compliance provider server associated with thegeolocation compliance provider. The method can also include, inresponse to the operator application receiving a returned state of thegeolocation checks, sending, by the geolocation compliance component,the command to the geolocation compliance provider server. The methodcan also include receiving, by the operator application, a response sentfrom the geolocation service provider server, the response comprisinglocation details (e.g., the location details can be generated via a callback method of the geolocation compliance provider server). The methodcan also include sending, by the operator application, a payload to ageolocation server of the operator to update a recent location of theuser according to the location details. The method can also includegenerating, by the operator application, a second GUI for enteringinformation of the bet. The second GUI can be generated in order to showthe second GUI to the user via the first GUI of the affiliateapplication. And, the method can include, in response to information ofthe bet being entered and executed by the user via the second GUI,sending, by the second GUI, the executed information along with theunique user identifier to the betting server of the operator. Thebetting server can request the geolocation server of the operator toverify the recent location of the user according to the sent payload,and the betting server can allow the bet to be made when the recentlocation is valid.

In such embodiments and others, the requesting of the command to send tothe geolocation compliance provider server can include initiating in abackground thread, by the operator application, a geolocation callrequest with the unique user identifier. And, the geolocation server ofthe operator can store the unique identifier and respond to the requestby the operator application, with returning a state of geolocationchecks to the operator application. The geolocation checks can beassociated with the unique user identifier. And, the unique useridentifier can be sent to the betting server by the affiliateapplication in a query as a query parameter.

In such embodiments and others, the payload can include the unique useridentifier and the location details to store and associate, in thegeolocation server of the operator, a user session with the affiliateapplication, the operator application, and the geolocation compliancecomponent. The location details can be encrypted in the payload.

Also, in such embodiments and others, the initiating of the geolocationchecks can include transferring, by the affiliate application, controlto the operator application and the geolocation compliance component.The method can also include, in response to the user starting the bet,initiating a user session with the affiliate application, the operatorapplication, and the geolocation compliance component. The unique useridentifier can be a session parameter of the user session.

Also, in such embodiments and others, software libraries for thegeolocation compliance component can be in software libraries for theoperator application. And, the sending of the command to the geolocationcompliance provider server can also be in response to the affiliateapplication initiating the sending of the command that includesaccessing the software libraries for the geolocation compliancecomponent.

In some embodiments, the affiliate app (which can be a native app or awebsite, for example) can include a single sign on. This means that theuser signs in once for the affiliate app and the components of theoperators as well. This can be implemented via one or more informationworkflows such as the OpenID workflow or one or more parts of the OpenIDworkflow. Such workflow(s) can connect and facilitate the communicationsand negotiations between the affiliate app and the respective back-endtransactional components of the operators. For example, account data,bets, authentication, and the like can be communicated through suchworkflow(s).

In some embodiments, the affiliate app can include an electronic wallet.The affiliate app can have active wallet which is used to fund betsoffered by various operators. The workflow used for the affiliate appcan be migrated and/or integrated into the back-end transactionalcomponents of the operators so that funds can be managed by theoperators as well. For example, a user can have respective accounts atmultiple operators and respective back-end components of the operatorsmanage the respective accounts separately.

In short, examples of the systems and methods disclosed herein forintegrating sports betting slips and environments for affiliates via anaffiliate app as well as via enhanced networked based enforcement ofgeographical compliance provide specific technical solutions to at leastovercome the technical problems mentioned in the background section andother parts of the application as well as other technical problems notdescribed herein but recognized by those skilled in the art.

Certain embodiments will now be described in greater detail withreference to the FIGS. 1-6.

With reference to FIG. 1, a system 100 in accordance with an embodimentof the present disclosure is shown. FIG. 1 shows components of a generalenvironment in which the systems and methods discussed herein can bepracticed. Not all the components can be required to practice thedisclosure, and variations in the arrangement and type of the componentscan be made without departing from the spirit or scope of thedisclosure. As shown, system 100 of FIG. 1 includes local area networks(“LANs”)/wide area networks (“WANs”)—network 105, client devices (e.g.,see client devices 102 a to 102 b), a geolocation compliance providerserver 104, an affiliate server 108, operator betting servers andgeolocation servers (e.g., see operator betting servers and operatorgeolocation servers 112 a to 112 b), and an analytics server 116.Applications used by the client devices can be served by the serversillustrated in FIG. 1, and such applications can include an affiliateapplication 109 which can be served at least in part from the affiliateserver 108.

In some embodiments, the affiliate app 109 or any of the affiliate appsor websites described herein can be connected to, be a part of, orinclude a fantasy sports app or website (such as a fantasy football appor website). In such embodiments, the fantasy sports app or website canbe a part of or owned by the affiliate.

Example systems and methods disclosed herein can solve the problemsdisclosed through the affiliate app 109 (which can be or include or be apart of an affiliate sports betting website). The affiliate app 109 canprovide a front-end registration, an electronic wallet, and a bettingenvironment for the user. And, by being communicatively coupled to theaffiliate app 109 (such as via links and/or functions in HTML iframes orin webviews of a native app), betting servers and geolocation servers ofone or more sports betting operators (e.g., see operator betting serversand operator geolocation servers 112 a to 112 b) can register users,maintain funds in appropriate accounts, provide the sports bettingtransactions, and provide networked based enforcement of geographicalcompliance. The affiliate application can be provided by server(s) ofthe affiliate and/or the operators (e.g., see affiliate server 108).

FIG. 1 shows the affiliate server 108 providing the affiliate app 109 tothe client devices 102 a and 102 b. And, the back-end transactionalcomponents 113 a and 113 b is provided by the operator betting serversand operator geolocation servers 112 a and 112 b respectively. Theback-end transactional components 113 a and 113 b can be providedthrough the affiliate app 109. Although, in such embodiments, theaffiliate app 109 and the back-end transactional components 113 a and113 b are separate applications being served from separate servers. Itis to be understood that more than two sports betting operator serversand more than two geolocation operator servers of more than two sportsbetting operators can occur in the system 100. And, more than twoback-end transactional components from more than two sports bettingoperators can be provided through the affiliate app 109. As shown, eachsports betting operator can have its own respective back-end componentin which parts of each back-end component can be aggregated and provideby the affiliate app 109 of a sports betting affiliate. In someembodiments, the affiliate app 109 is not an aggregator and only onesports betting operator can have its own back-end component in whichparts of the back-end component can be provided by the affiliate app 109of a sports betting affiliate

As shown, the geolocation compliance provider server 104 iscommunicatively coupled to database 106 and uses the database 106 fordata storage, retrieval, and management. As shown, the affiliate server108 is communicatively coupled to database 110 and uses the database 110for data storage, retrieval, and management. The operator betting serverand operator geolocation server 112 a and operator betting server andoperator geolocation server 112 b are each communicatively coupled torespective databases 114 a and respective databases 114 b, respectively,and use the databases 114 a and 114 b for data storage, retrieval, andmanagement respectively. The analytics server 116 is communicativelycoupled to database 118 and uses the database 118 for data storage,retrieval, and management. The databases described herein can be used bythe servers to select, store and organize data used as input for theprocesses described herein. For example, information described hereincan be from one or more of the databases described herein. The serversand client devices described herein can select and use the data storedand organized in the databases as input for data processing andmanagement tasks described herein.

It is to be understood that processes described herein can be executedby one or more of the client devices or servers disclosed herein.

Client devices (e.g., see client devices 102 a and 102 b) can include acomputing device capable of receiving and sending a message over anetwork, such as network 105—which can include a wireless network—, orthe like. Client devices can also be mobile devices that are configuredto be portable and held in a hand or two hands. Such devices includemulti-touch and portable devices such as, cellular telephones, smartphones, display pagers, radio frequency (RF) devices, infrared (IR)devices, Personal Digital Assistants (PDAs), handheld computers, laptopcomputers, wearable computers, smart watch, tablet computers, phablets,integrated devices combining one or more of the preceding devices, andthe like. As such, mobile devices typically range widely in terms ofcapabilities and features. For example, a cell phone can have a numerickeypad and a few lines of monochrome LCD display on which only text canbe displayed. In another example, a web-enabled mobile device can have atouch sensitive screen, a stylus, and an HD display in which both textand graphics can be displayed.

A web-enabled client device can include a browser application that isconfigured to receive and to send web pages, web-based messages, and thelike. The browser application can be configured to receive and displaygraphics, text, multimedia, and the like, employing virtually any webbased language, including a wireless application protocol messages(WAP), and the like. In one embodiment, the browser application isenabled to employ Handheld Device Markup Language (HDML), WirelessMarkup Language (WML), WMLScript, JavaScript, Standard GeneralizedMarkup Language (SMGL), HyperText Markup Language (HTML), eXtensibleMarkup Language (XML), and the like, to display and send a message.

Client devices (e.g., see client devices 102 a and 102 b) and servers(e.g., see servers 104, 108, 112 a, 112 b, and 116) can each include atleast one client application (such as the affiliate app 109 or a part ofthe affiliate application or such as a part of the back-endtransactional component 113 a or 113 b) that is configured to receivecontent or data from another computing device. The client application(e.g., the affiliate app 109 or a part of the back-end transactionalcomponent 113 a or 113 b) can include a capability to provide andreceive textual content, graphical content, audio content,authentication and keying information, and the like. The clientapplication can further provide information that identifies itself,including a type, capability, name, and the like. In one embodiment,client devices and servers can each uniquely identify themselves throughany of a variety of mechanisms. Client devices can be identifiable via aphone number, Mobile Identification Number (MIN), an electronic serialnumber (ESN), or another type of device identifier. Servers, clusters,and computers within clusters can be identifiable via an electronicserial number (ESN) or another type of device identifier.

In general, client devices and servers (e.g., see the client devices andservers shown in FIG. 1) can be capable of sending or receiving signals,such as via a wired or wireless network, or can be capable of processingor storing signals, such as in memory as physical memory states.

Network 105 is configured to couple client devices and servers (e.g.,see the client devices and servers shown in FIG. 1) with other computingdevices. Network 105 is enabled to employ any form of computer readablemedia for communicating information from one electronic device toanother. Also, network 105 can include the Internet in addition to localarea networks (LANs), wide area networks (WANs), direct connections,such as through a universal serial bus (USB) port, other forms ofcomputer-readable media, or any combination thereof. On aninterconnected set of LANs, including those based on differingarchitectures and protocols, a router acts as a link between LANs,enabling messages to be sent from one to another, and/or other computingdevices.

Within the communications networks utilized or understood to beapplicable to the present disclosure, such networks will employ variousprotocols that are used for communication over the network. Signalpackets communicated via a network, such as a network of participatingdigital communication networks, can be compatible with or compliant withone or more protocols. Signaling formats or protocols employed caninclude, for example, TCP/IP, UDP, QUIC (Quick UDP Internet Connection),DECnet, NetBEUI, IPX, APPLETALK™, or the like. Versions of the InternetProtocol (IP) can include IPv4 or IPv6. The Internet refers to adecentralized global network of networks. The Internet includes localarea networks (LANs), wide area networks (WANs), wireless networks, orlong haul public networks that, for example, allow signal packets to becommunicated between LANs. Signal packets can be communicated betweennodes of a network, such as, for example, to one or more sites employinga local network address. A signal packet can, for example, becommunicated over the Internet from a user site via an access nodecoupled to the Internet. Likewise, a signal packet can be forwarded vianetwork nodes to a target site coupled to the network via a networkaccess node, for example. A signal packet communicated via the Internetcan, for example, be routed via a path of switches, gateways, servers,etc. that can route the signal packet in accordance with a targetaddress and availability of a network path to the target address.

In some embodiments, the network 105 can include content distributionnetwork(s) and/or application distribution network(s). A contentdistribution network (CDN) or an application distribution network (ADN)generally refers to a delivery system that includes a collection ofcomputers or computing devices linked by a network or networks. A CDN orADN can employ software, systems, protocols or techniques to facilitatevarious services, such as storage, caching, communication of content, orstreaming media or applications included, associated with, or used bythe enhanced GUI generator.

Generally, the client devices and servers shown in FIG. 1 include acomputing system or device that includes a configuration to providecontent such as interactive content via a network to another device.Devices that can operate as such server(s) include personal computersdesktop computers, multiprocessor systems, microprocessor-based orprogrammable consumer electronics, network PCs, servers, and the like.The client devices and servers shown in FIG. 1 can provide a variety ofadditional services that include, but are not limited to, streamingand/or downloading media services, search services, email services,photo services, web services, social networking services, news services,third-party services, audio services, video services, instant messaging(IM) services, SMS services, MMS services, FTP services, voice over IP(VOIP) services, or the like. Such services can be used by a user uponthe user being authenticated, verified or identified by the service.Examples of content can include videos, text, audio, images, or thelike, which can be processed in the form of physical signals, such aselectrical signals, for example, or can be stored in memory, as physicalstates, for example.

The client devices and servers shown in FIG. 1 can be capable of sendingor receiving signals, such as via a wired or wireless network, or can becapable of processing or storing signals, such as in memory as physicalmemory states. Devices capable of operating as a server can include, asexamples, dedicated rack-mounted servers or computers, desktopcomputers, laptop computers, set top boxes, integrated devices combiningvarious features, such as two or more features of the foregoing devices,or the like. Servers as well computers of clusters can vary widely inconfiguration or capabilities, but generally, a server can include oneor more central processing units and memory. A server or a computer of acluster can also include one or more mass storage devices, one or morepower supplies, one or more wired or wireless network interfaces, one ormore input/output interfaces, or one or more operating systems, such asWindows Server, Mac OS X, Unix, Linux, FreeBSD, or the like.

In some embodiments, users are able to access services provided byservers (e.g., see the servers shown in FIG. 1) and such servers canstore various types of applications and application related informationincluding application data and user profile information (e.g.,identifying and behavioral information associated with a user). Itshould also be understood that the servers can also store various typesof data related to content and services provided by an associateddatabase.

Embodiments exist where the network 105 is also coupled with/connectedto a Trusted Search Server (TSS) which can be utilized to rendercontent/data/information in accordance with the embodiments discussedherein. Embodiments exist where the TSS functionality can be embodiedwithin the servers 104, 108, 112 a, 112 b and 116 as well as thecomputers of network 105.

Moreover, although FIG. 1 illustrates servers 104, 108, 112 a, 112 b,and 116 as single computing devices, respectively, the disclosure is notso limited. For example, one or more functions of servers 104, 108, 112a, 112 b, and 116 can be distributed across one or more distinctcomputing devices. Moreover, in one embodiment, servers 104, 108, 112 a,112 b, and 116 can be integrated into a single computing device, withoutdeparting from the scope of the present disclosure.

And, in some embodiments, the analytics server 116 can include analyticsbased on artificial intelligence (AI) and/or machine learning. Forexample, the analytics can include or be based on an artificial neuralnetwork (ANN). In such embodiments, for the affiliate app or website,the data accumulating from populating fields and clicks and other typesof interactions by users over time allows the affiliate to build machinelearning models that can more easily predict what bets customers aregoing to want to make, and to recalculate odds independent of thebetting services in real-time so that the affiliate can assist customersin identifying which bets are undervalued or overvalued, which bets theyprefer, etc. Such functionality can be implemented via the analyticsserver 116 and database 118.

FIG. 2 is a schematic diagram illustrating a computing device 200showing an example embodiment of a computing device that can be usedwithin the present disclosure. The computing device 200 can include manymore or less components than those shown in FIG. 2. However, thecomponents shown are sufficient to disclose an illustrative embodimentfor implementing some aspects the present disclosure. The computingdevice can represent, for example, any one or more of the servers orclient devices discussed above in relation to FIG. 1.

As shown in the figure, computing device 200 includes a processing unit(CPU) 222 in communication with a mass memory 230 via a bus 224.Computing device 200 also includes a power supply 226, one or morenetwork interfaces 250, and an input/output interface 260 (which caninclude an audio interface, a display, a keypad, an illuminator, aglobal positioning systems (GPS) receiver, sensors, and an input/outputinterface to such devices).

Power supply 226 provides power to computing device 200. A rechargeableor non-rechargeable battery can be used to provide power. The power canalso be provided by an external power source, such as an AC adapter or apowered docking cradle that supplements and/or recharges a battery.Computing device 200 can optionally communicate with a base station (notshown), or directly with another computing device. Network interface 250includes circuitry for coupling computing device 200 to one or morenetworks, and is constructed for use with one or more communicationprotocols and technologies as discussed above. Network interface 250 issometimes known as a transceiver, transceiving device, or networkinterface card (NIC). The input/output interface 260 can be used forcommunicating with external devices. Input/output interface 260 canutilize one or more communication technologies, such as USB, infrared,Bluetooth™, or the like.

Mass memory 230 includes a RAM 232, a ROM 234, and other storage means.Mass memory 230 illustrates another example of computer storage mediafor storage of information such as computer readable instructions, datastructures, program modules or other data. Mass memory 230 stores abasic input/output system (“BIOS”) 240 for controlling low-leveloperation of computing device 200. The mass memory also stores anoperating system 241 in RAM 232 for controlling the operation ofcomputing device 200. It will be appreciated that this component caninclude a general-purpose operating system such as a version of UNIX, orLINUX™, or a specialized client communication operating system such asWindows Client™, or the Symbian® operating system. The operating systemcan include, or interface with a Java virtual machine module thatenables control of hardware components and/or operating systemoperations via Java application programs.

The mass memory also stores a system browser in RAM 232 for controllingoperations of a system browser 243 and applications 242, such as theaffiliate app 109 or a back-end transactional component (e.g., seeback-end transactional component 113 a or 113 b).

Memory 230 further includes one or more data stores, which can beutilized by computing device 200 to store, among other things, thesystem browser 243, the applications 242 and/or other data. For example,data stores can be employed to store information that describes variouscapabilities of computing device 200. The information can then beprovided to another device based on any of a variety of events,including being sent as part of a header during a communication, sentupon request, or the like. At least a portion of the capabilityinformation can also be stored on a disk drive or other storage medium(not shown) within computing device 200.

Applications 242 can include computer executable instructions which,when executed by computing device 200 or any of the other serversdescribed herein, transmit, receive, and/or otherwise process text,audio, video, images, and enable telecommunication with other serversand/or another user of another client device. Examples of applicationprograms or “apps” in some embodiments include browsers, calendars,contact managers, task managers, transcoders, photo management, databaseprograms, word processing programs, security applications, spreadsheetprograms, games, search programs, and so forth.

In some embodiments, the computing device 200 can be one of the clientdevices shown in FIG. 1 or the affiliate server 108 shown in FIG. 1 andcan include a processor and a non-transitory computer-readable storagemedium for tangibly storing thereon program logic (e.g., see theaffiliate app 109) for execution by the processor, the program logichaving executable logic for performing at least some of the steps ofmethod 300 and at least some of the steps of other methods disclosedherein. For example, the program logic and/or the affiliate app 109 canhave executable logic for generating, by an affiliate application of abetting affiliate, a first graphical user interface (GUI) for making abet in order to show the first GUI to a user of a computing devicerunning at least part of the affiliate application. Also, for example,the program logic and/or the affiliate app 109 can have executable logicfor, in response to a user starting a bet via the first GUI, generating,by the affiliate application, a unique user identifier. The unique useridentifier can be generated using random number generation. The programlogic and/or the affiliate app 109 can also have executable logic forsending to a betting server of a betting operator, by the affiliateapplication, the unique user identifier. The unique user identifier canbe a link between the affiliate application, an operator application ofthe betting operator, and a geolocation compliance component of ageolocation compliance provider.

Also, the program logic and/or the affiliate app 109 can also haveexecutable logic for running, via the affiliate application, thegeolocation compliance component and the operator application. Themethod can also include initiating, by the operator application,geolocation checks via the geolocation compliance component. The programlogic and/or the affiliate app 109 can also have executable logic forrequesting from a geolocation server of the operator, by the operatorapplication, a command to send to a geolocation compliance providerserver associated with the geolocation compliance provider. The programlogic and/or the affiliate app 109 can also have executable logic for,in response to the operator application receiving a returned state ofthe geolocation checks, sending, by the geolocation compliancecomponent, the command to the geolocation compliance provider server.The program logic and/or the affiliate app 109 can also have executablelogic for receiving, by the operator application, a response sent fromthe geolocation service provider server, the response comprisinglocation details (e.g., the location details can be generated via a callback method of the geolocation compliance provider server).

The program logic and/or the affiliate app 109 can also have executablelogic for sending, by the operator application, a payload to ageolocation server of the operator to update a recent location of theuser according to the location details. The program logic and/or theaffiliate app 109 can also have executable logic for generating, by theoperator application, a second GUI for entering information of the bet.The second GUI can be generated in order to show the second GUI to theuser via the first GUI of the affiliate application. And, the programlogic and/or the affiliate app 109 can also have executable logic for,in response to information of the bet being entered and executed by theuser via the second GUI, sending, by the second GUI, the executedinformation along with the unique user identifier to the betting serverof the operator. The betting server can request the geolocation serverof the operator to verify the recent location of the user according tothe sent payload, and the betting server can allow the bet to be madewhen the recent location is valid.

In such embodiments and others, the requesting of the command to send tothe geolocation compliance provider server can include initiating in abackground thread, by the operator application, a geolocation callrequest with the unique user identifier. And, the geolocation server ofthe operator can store the unique identifier and respond to the requestby the operator application, with returning a state of geolocationchecks to the operator application. The geolocation checks can beassociated with the unique user identifier. And, the unique useridentifier can be sent to the betting server by the affiliateapplication in a query as a query parameter.

In such embodiments and others, the payload can include the unique useridentifier and the location details to store and associate, in thegeolocation server of the operator, a user session with the affiliateapplication, the operator application, and the geolocation compliancecomponent. The location details can be encrypted in the payload.

Also, in such embodiments and others, the initiating of the geolocationchecks can include transferring, by the affiliate application, controlto the operator application and the geolocation compliance component.The method can also include, in response to the user starting the bet,initiating a user session with the affiliate application, the operatorapplication, and the geolocation compliance component. The unique useridentifier can be a session parameter of the user session.

Also, in such embodiments and others, software libraries for thegeolocation compliance component can be in software libraries for theoperator application. And, the sending of the command to the geolocationcompliance provider server can also be in response to the affiliateapplication initiating the sending of the command that includesaccessing the software libraries for the geolocation compliancecomponent.

Having described components of the architecture example employed withinthe disclosed systems and methods, the components' operations withrespect to the disclosed systems and methods will now be described belowwith reference to FIGS. 3, 4A, 4B, 5A, 5B, and 6.

FIG. 3 is a schematic diagram illustrating an example workflow andmethod 300 for a novel and improved application, networked basedenforcement of geographical compliance, data processing and networkingframework, in accordance with some embodiments of the presentdisclosure. FIGS. 4A and 4B are flowcharts illustrating the examplemethod 300, in accordance with some embodiments of the presentdisclosure.

In FIG. 3, shown are three main stakeholders in the method 300,including the affiliate 302 (e.g., a sports betting affiliate), thegeolocation compliance provider 304, and the operator 306 (e.g., asports betting operator). Also, shown is how the affiliate app 109 ofthe affiliate 302 (which includes a user interface 308) can includeand/or support software libraries for the operator 310 that includes orsupports software libraries for a geolocation compliance component 314.The libraries for the operator 310 are retrieved from the geolocationserver 312 of the operator 306. And, the libraries for the geolocationcompliance component 314 are retrieved from a geolocation complianceprovider server 316 of the geolocation compliance provider 304. Also,shown is an operator app 318 of the operator 306, which can be servedfrom a betting server 320 of the operator and provided to a user via theaffiliate app 109 of the affiliate 302. The betting server 320 can alsoinclude and serve a backend component 319 related to the operator app318.

As shown in FIGS. 3, 4A, and 4B, method 300 can begin with step 321 withthe affiliate app 109 displaying, on a computing device, a userinterface for starting a bet. Also, at step 321, the method 300includes, in response to a user starting a bet, generating, by theaffiliate app 109, a unique user identifier (such as by using randomnumber generation). The starting of the bet can initiate a user sessionwith the affiliate app 109, the operator app 318, and the geolocationcompliance component (e.g., see libraries for the geolocation compliancecomponent 314).

At step 322, the method 300 can continue with sending to the bettingserver 320 of a betting operator 306, by the affiliate app 109, theunique user identifier in a query as a query parameter. The unique useridentifier can be a link between the operator app 318 and thegeolocation compliance component. Also, at step 322, the method 300includes running, through an execution of the affiliate app 109, thegeolocation compliance component and the operator app 318. The uniqueuser identifier can be a session parameter of the operator app 318 and asession parameter of the geolocation compliance component. Also, theunique identifier can be a session parameter of the affiliate app 109.Also, at step 322, the method 300 can include opening, by the affiliateapp 109, a user interface of the operator app 318 for finalizing the betin the operator app. The UI of the operator app can be displayed via auser interface of the affiliate app 109.

At step 324, the method 300 can continue with initiating, by theaffiliate app 109, geolocation checks through the geolocation compliancecomponent (e.g., see libraries for the geolocation compliance component314). The geolocation checks are associated with the unique useridentifier. Libraries for the geolocation compliance component 314 arein libraries of the operator 310. And, the libraries of the operator 310can be sent from one or more servers of the operator 306. Also,libraries for the geolocation compliance component 314 can be sent toone or more servers of the operator 306 (e.g., see betting server 320and geolocation server 312) by a geolocation compliance provider server316. Also, at step 324, the initiating of the geolocation checks caninclude transferring to the operator app 318, by the affiliate app 109,control to the geolocation compliance component with the unique useridentifier as a link between the apps.

At step 326, the method 300 can continue with requesting from ageolocation server 312 of the operator 306, by the operator app 318, acommand to send to the geolocation compliance provider server 316. Theoperator app 318 can be supported by the libraries of the operator 310.Also, at step 326, the requesting of the command to send to thegeolocation compliance provider server 316 can include initiating in abackground thread, by the operator app 318, a geolocation call requestwith the unique user identifier.

At step 328, the method 300 can continue with the geolocation server 312of the operator 306 storing the unique identifier. Also, at step 328,the method 300 can continue with the geolocation server 312 respondingto the request by the operator app 318 with returning a state ofgeolocation checks to the operator app 318.

At step 330, the method 300 can continue with, in response to theoperator app 318 receiving the returned state of geolocation checks,sending the command to the geolocation compliance provider server 316(such as by the geolocation compliance component operating via theoperator app 318). The location details of the user can be generated bya location tracking device in the computing device of the user thatdisplays the user interface 308 of the affiliate app 109. Also, at step330, the sending of the command can include initiating, by libraries forthe geolocation compliance component 314 in the libraries of theoperator 310 accessed via the affiliate app 109, the sending of thecommand.

At step 331, the method 300 can continue with the geolocation complianceprovider server 316 validating location of the computing device of theuser. The step 331 can also include running additional fraud preventionchecks by the geolocation compliance provider server 316. It can beknown that the computing device is a computing device of the user, bythe user logging into the computing device with the credentials of theuser.

At step 332, the method 300 can continue with receiving, by the operatorapp 318 via the affiliate app 109, a response sent from the geolocationservice provider server. The response can include encrypted locationdetails generated via a call back method of the geolocation complianceprovider server 316. The geolocation compliance provider server 316 cangenerate and send the response.

At step 334, the method 300 can continue with sending a payload (e.g.,the payload having the encrypted location details and the unique useridentifier) to the geolocation server 312 of the operator 306 to updatea recent location of the user and the computing device and to associatea user session with the affiliate app, the operator app, and thegeolocation compliance component. The operator app 318 running via theaffiliate app 109 can send the payload.

At step 335, the method 300 can continue with the operator geolocationserver 312 decrypting the payload (e.g., including decrypting theencrypted location details). The payload can be sent from the operatorapp 318 with a key provided by the geolocation compliance providerserver 316. And, at step 335, the method 300 can also include theoperator app 318 associating the user session with the uniqueidentifier. The association by the operator app 318 can include storingthe associated location and unique user identifier at the operatorgeolocation server 312.

At step 336, the method 300 can continue with providing, by a page ofthe operator app 318 via a web view or iframe in the user interface 308of the affiliate app 109. The UI 308 can include a UI to enterinformation of a bet to place the bet (such as information regarding thesource of funding of the bet, the parameters of the bet, etc.).

At step 337, the method 300 can continue with, in response toinformation of a bet being entered and executed by the user via the userinterface 308 of the affiliate app 109, sending the entered betinformation along with the unique user identifier. The sending of theentered bet information and the identifier can be by the page of theoperator app 318.

At step 338, the method 300 can continue with the operator bettingserver 320 requesting the operator geolocation server 312 to verify thelocation associated with the unique identifier and allowing the bet tobe engaged in the case of a valid location of the user and computingdevice for making the bet.

In some embodiments, the aforesaid processes of the operator app 318 canbe executed via a webview, an iframe, or another component of theaffiliate app 109 or a component of the user interface 308 of theaffiliate app.

In some embodiments, there are different levels of integration. Forexample, at a first level, odds feed integration and simple redirectflow can occur in the affiliate app. At a second level, the affiliateapp can be more integrated with functions that conventionally occur onthe servers of a sports betting operator. E.g., see FIGS. 5A, 5B, and 6.For example, on the second level, the affiliate app can integrate a betslip which is then processed by a back-end transactional component of anoperator but after the data is entered and saved via the affiliate app.E.g., see FIGS. 5A, 5B, and 6. These functions and levels can relate toa workflow of an integrated bet slip and environment for the affiliateapp. E.g., see FIGS. 5A, 5B, and 6.

FIGS. 5A and 5B are schematic diagrams illustrating an example workflow500, in accordance with some embodiments of the present disclosure. InFIG. 5A, the workflow 500 includes a plurality of API servers of aplurality of operators (e.g., see operator API sever 502 a and operatorAPI server 502 b) communicating data via respective operator odds APIs(e.g., see operator odds API 504 a and operator odds API 504 b) with asports data ingestion layer 506. In some embodiments, the affiliate appis not an aggregator and the workflow 500 includes at least one APIserver of only one operator communicating data via the operator odds APIwith a sports data ingestion layer 506. The sports data ingestion layer506 can ingest or preprocess the communicated data for sharing the datawith the database 508, which can store, organize, manage, and share theingested or preprocessed data. The database query and manipulation layer510 of the workflow 500 can query information from the database 508 aswell as update or change the data stored and organized by the database508. An application of the affiliate, such as affiliate app 109, can usethe database query and manipulation layer 510 to query information fromthe database 508 as well as update or change the data stored andorganized by the database 508 via at least the servers and apps of theoperator. A mobile device or computing device can show odds in theaffiliate's web or native affiliate app graphical user interface (GUI)512. Then, the mobile device or computing device can be redirected tooperator's web or native app and/or backend component to place a betaccording to one or more of the shown odds in a GUI 514.

In FIG. 5B, the workflow 500 includes the mobile device or computingdevice providing fields in a GUI 516 to connect user identity with oneor more sports betting operators. With the GUI 516, OpenID workflow canbe used to connect the user identity with the sports bettingoperator(s). The GUI 516 can occur after the odds are presented in theGUI 512 and redirection occurs in GUI 514, when the user has selected aninterest in placing a bet. In GUI 518 of the affiliate app, fields forlogin, betting, and the like can be prepopulated. The prepopulating canoccur via an electronic wallet of the affiliate application, and it canbe shown via an iframe or a webview. In GUI 520 of the affiliate app, anelectronic wallet of the app can be shown and/or used for funding ofbets. In GUI 522, such as via an iframe or a webview, the sports bettingoperator's system can provide for executing trades, adjusting lines, andplacing bets. In GUI 524, the affiliate app can track and provide betstatus via APIs of the sports betting operator(s).

In FIG. 6, the method 600 is shown being performed by a first part of anaffiliate application 602 (e.g., see affiliate app 109 shown in FIGS. 1and 2), a first part of a back-end transactional component 604 (e.g.,see back-end transactional component 113 a or 113 b), a second part ofthe affiliate application 606, and a second part of the back-endtransactional component 608. The first part of the affiliate app 602 caninclude a GUI and related parts to promote betting, such as throughdisplaying ads and odds. The first part of the affiliate app 602 canalso include a GUI and related parts to provide wallet data,transactions data, and feedback on bets made. The first part of theback-end transactional component 604 can manage and facilitateauthorization and credentials for interactions between the affiliate appand the back-end transactional component.

The second part of the affiliate application 606 can manage sharing userinformation retrieved by the affiliate application with the back-endtransactional component. The second part of the affiliate application606 can include a workflow, such as the OpenID connect flow, that allowsfor user content to be communicated between an affiliate app or websiteand the operator's back-end transactional component. The affiliate appor website can support the OpenID connect flow and can integrate it withthe back-end transactional component of the operator. The operator canprovide the integration of the workflow and make calls to APIs of theaffiliate app or website to get the user data.

The second part of the back-end transactional component 608 can managegeneration and use of a new user account for betting. And, bets andfinancial transactions can be made via the second part of the back-endtransactional component 608.

As shown, the method 600 begins with the first part of the affiliate app602 presenting a betting ad to a user, at step 612. If the user selectsthe ad, then the first part of the back-end transactional component 604collects user information and credentials as well as an authorizationrequest for betting. Then, the first part of the back-end transactionalcomponent 604 sends, to the second part of the affiliate app 606, theuser information and credentials as well as the authorization request—atstep 614.

At step 616, the second part of the affiliate app 606 redirects the userexperience back to the first part of the back-end transactionalcomponent 604 to collect additional information from the user via theback-end transactional component. At step 618, the first part of theback-end transactional component 604 can then redirect the userexperience back to the second part of the affiliate app 606. Redirectionvia steps 616 and 618 can occur via redirect URLs. Also, in these steps,OpenID can allow for user content to be communicated between anaffiliate app or website and the operator's back-end transactionalcomponent. The OpenID and the operator can provide the integration ofthe workflow and make calls to APIs of the affiliate app or website toget the user data. Also, at step 620, the second part of the affiliateapp 606 prompts the user for permission to share data with the operator.At step 622, the second part of the back-end transactional component 608retrieves the permission if the user gives permission to the affiliateapp to share information with the operator. This can be managed viaOpenID.

At step 624, the second part of the affiliate app 606 sends anauthorization code according to the permission to the first part of theback-end transactional component 604. At step 626, the first part of theback-end transactional component 604 requests for an access token fromthe second part of the affiliate app 606. And, at step 628, the secondpart of the affiliate app 606 sends an access token and a refresh tokenback to the first part of the back-end transactional component 604.These steps can be managed via OpenID. Then, the access token and therefresh token can be saved on the operator's servers.

At step 630, the first part of the back-end transactional component 604sends a request for additional user information from the first part ofthe affiliate app 602 to complete registration. The providing of theadditional information is permitted by the first part of the affiliateapp 602 due to the first part of the back-end transactional component604 sending access tokens to the affiliate app.

At step 632, upon successful registration via the previously mentionedsteps, the operator GUID and userID stored with the operator is used tocomplete authentication between the affiliate and the operator. This canbe done via OpenID as well. And, then, at step 634, the first part ofback-end transactional component 604 can send the user authorizationcredentials for the affiliate to call one or more operator APIs from thefirst part of the affiliate app 602. The operator can send server accesstoken for the affiliate to call its API(s) to get bet status via theaffiliate app. These mentioned tokens can be used to integrate anelectronic wallet and send secured transactional details to theaffiliate via the affiliate app.

Also, with respect to integrating sports betting slips and environmentsfor affiliates in general, an affiliate application (e.g., affiliate app109) retrieving and receiving odds feeds from back-end transactionalcomponents (e.g., back-end transactional components 113 a and 113 b) ofsports betting operators in order to show a merged odds module in agraphical user interface (GUI) of the affiliate application. Theworkflow can include OpenID Connect. The step can include the affiliateapp retrieving the odds feeds from the operators in order to show themerged odds module in either an affiliate app or website of theaffiliate. In this step the affiliate, via the affiliate app, can do thework to call operators APIs or retrieve data feeds from the operators.

The affiliate application can receive user data via the GUI of theaffiliate application. The user data can include user consent data andcredentials of a user. The work flow can allow for user content to becommunicated between an affiliate app or website and an operator'sback-end transactional component. The affiliate app or website cansupport the OpenID connect flow and can integrate it with a back-endtransactional component of an operator. An operate can provide theintegration of the workflow and make calls to APIs of the affiliate appor website to get the user data. The affiliate application can also sendthe user data to the back-end transactional components of the operators.The affiliate application can generate a user account according to userinteraction with the GUI of the affiliate application.

In some embodiments, for the affiliate app, webviews can be used as analternative to iframes inside native mobile apps on iOS or Android.Iframes can be used to support the affiliate app component via a webbrowser. The information that is provided into the iframe or webviewdepending on the implementation can be information that the affiliateapp has already inferred, received, or retrieved from a user (who couldbe a customer of the affiliate). The bet slip or environment in suchexamples can be pre-populated and the user only then needs to select orclick to make a bet or buy or invest. Although all these steps can beimplemented through the affiliate app or website, the finalization ofthe transactions and the holding of the funds must be controlled andperformed by the servers of the sports betting operators. This is so theoverall system is in regulatory compliance.

In some embodiments, for the affiliate app or website, the dataaccumulating from populating fields and clicks and other types ofinteractions by users over time allows the affiliate to build machinelearning models that can more easily predict what bets customers aregoing to want to make, and to recalculate odds independent of thebetting services in real-time so that the affiliate can assist customersin identifying which bets are undervalued or overvalued, which bets theyprefer, etc. In some embodiments, the affiliate app uses iframes via aweb browser and website to manage the registration and betting flow ofthe operators. Alternatively, the affiliate app can use webview via anative app to manage the registration and betting flow of the operators.In such embodiments, the operators' systems can call an API of theaffiliate's system using the credentials received from a workflow suchas OpenID flow. This process can be used to prepopulate a registrationform or betting form. Also, artificial intelligence and/or machinelearning can be used for pre-population of such forms.

The affiliate application can send account data of the generated useraccount to the back-end transactional components of the operators. Theaffiliate application can also generate and/or select a bet of anoffering operator according to user interaction with an electronicwallet and the GUI of the affiliate application. And, the affiliateapplication can send the bet to the back-end transactional component ofthe offering operator. The offering operator is the operator of theplurality of operators connected to the affiliate application that hasoffered the bet selected and/or generated in the affiliate app. Theelectronic wallet of the affiliate app can have functionally somewhatsimilar to a wallet, but it is in electronic and/or GUI form. The usercan connect to the affiliate app or website to place a bet. In thisstep, the affiliate can open the electronic wallet, via the affiliateapp, to allow an operator to use the balance to place a bet. Theoperator can then integrate the electronic wallet as an allowed paymentoption to fund the bet. Also, this step is where the user can place thebet, which can be done via a webview or an iframe depending on theimplementation or embodiment. The betting information is thencommunicated to the operator to finalize the bet accordingly using theworkflow.

The affiliate application can track the bet via requesting and receivingcommunications of bet updates from the back-end transactional componentof the offering operator. The workflow can include OpenID Connect. Thestep can include operations by the affiliate app and an operator'sback-end transactional component. With share step five, a user can trackbet history from the affiliate app or website. In this step, theaffiliate can call the API(s) of the operator offering the selected bet,via the affiliate app, to retrieve bet status information. The operatorin such embodiments, can expose its API(s) for providing status of abet.

The back-end transactional components of sports betting operators (e.g.,back-end transactional components 113 a and 113 b) can send odds feedsto an affiliate application based on requests by the affiliateapplication to show a merged odds module in a graphical user interface(GUI) of the affiliate application. The back-end transactionalcomponents of the operators can integrate a workflow of the affiliateapplication to process and verify user data received from the affiliateapplication. The user data can include user consent data and credentialsof a user. The back-end transactional components of the operators canfurther integrate the workflow of the affiliate application to generateuser accounts for the user according to the user data. The back-endtransactional components of the operators can further integrate theworkflow of the affiliate application to generate and place bets for theuser according to bet and wallet data associated with the user receivedfrom the affiliate application. The back-end transactional components ofthe operators can send bet updates to the affiliate applicationaccording to requests for bet updates on the placed bets received fromthe affiliate application.

In such embodiments and others. a first computing device of a sportsbetting affiliate can execute the affiliate application. And, respectivecomputing devices of the sports betting operators can execute theback-end transactional components. The first computing device can be apart of a first local area network of the sports betting affiliate. And,the respective computing devices of the operators can be parts ofrespective local area networks of the sports betting operators which areseparate from the first local area network and each other. And, thefirst computing device and the respective computing devices of theoperators can be communicatively coupled via a wide area networkincluding the first local area network and the respective local areanetworks of the operators.

In some embodiments, the affiliate application can include a website,and the retrieving the odds feeds from the back-end transactionalcomponents can be via respective links in one or more iframes of the website. In such embodiments, the sending the user data to the back-endtransactional components can be via respective links in one or moreiframes of the website. Also, the sending the account data of thegenerated user account to the back-end transactional components can bevia respective links in one or more iframes of the web site. Further,the sending the bets to the back-end transactional components can be viarespective links in one or more iframes of the website. And, thetracking the bets via requesting and receiving communications of betupdates from the back-end transactional components can be via respectivelinks in one or more iframes of the website.

An iframe can be or include a HyperText Markup Language (HTML) elementthat allows a web browser window to be split into segments, each ofwhich can show a different document. An iframe can lower bandwidth use,as repeating parts of a layout can be used in one frame, while variablecontent is displayed in another. Iframes can hold documents on differentservers, and iframes can be used to display content (plugins) on thirdparty websites as well as used to display banners on third partywebsites.

In some embodiments, the affiliate application can include a nativeapplication, and the retrieving the odds feeds from the back-endtransactional components can be via respective links in one or morewebviews of the native application. In such embodiments, the sending theuser data to the back-end transactional components can be via respectivelinks in one or more webviews of the native application. Also, thesending the account data of the generated user account to the back-endtransactional components can be via respective links in one or morewebviews of the native application. Further, the sending the bets to theback-end transactional components can be via respective links in one ormore webviews of the native application. And, the tracking the bets viarequesting and receiving communications of bet updates from the back-endtransactional components can be via respective links in one or morewebviews of the native application.

A webview can be or include a web browser that can be a part of a nativeapplication and that can be used to display web content without leavingthe native app.

In some embodiments, a view controller or custom tabs can be used withwebviews or web browsers. Any of the processes described herein that areperformed via a web browser can be performed via a view controller or acustom tab in or executed via the web browser. In embodiments using aview controller, a user in the affiliate app can click on a link tostart a betting registration process. The affiliate app can open a pageinside a view controller. An example advantage of using a viewcontroller can include an address bar of a browser showing a URL of theaffiliate app. Also, a view controller can have phishing detectioncapabilities. And, a view controller can run as a separate process fromthe affiliate app which prevents access to private user data, such ascookies for the affiliate app. The view controller can also provide acontinuous experience as it shares data with a web browser. If the userhas logged in before and the session is still active, then the sessioncan continue without requiring an additional login. And, with the viewcontroller, the affiliate can monitor session times and require loginsfor inactive sessions. Users also can have access to data storage onremote storage devices (such as data storage on remote storage devicesin a cloud computing environment). The access to data storage can be viaa keychain, which can improve data security.

In embodiments using custom tabs, a user in the affiliate app can clickon a link to start a betting registration process. The affiliate app canthen open a page inside a customized tab in a web browser. Thecustomized tab can be customized for the affiliate app specifically. Forexample, the tab can include visual design aspects similar to theaffiliate app. An example advantage of using custom tabs can include anaddress bar of a browser showing a URL of the affiliate app. Also,custom tabs can warn users when they try to navigate to possible threatactor sites or download possible threat actor files. Custom tabs canalso provide a continuous experience as such tabs can share cookies witha system of a web browser. If a user has logged in before and thesession is still active, then the session continues without requiringadditional login. Also, the affiliate app, via custom tabs, can monitorthe session times and require logins for inactive sessions.

In some embodiments, a system having at least a first computing deviceof a sports betting affiliate and at least a plurality of respectivecomputing devices of sports betting operators can implement some aspectsof the methods described herein. The first computing device can includea first processor and a first non-transitory computer-readable storagemedium for tangibly storing thereon first program logic for execution bythe first processor (the first program logic being a part of anaffiliate application of a sports betting affiliate). The first programlogic can include executable logic for retrieving odds feeds fromback-end transactional components of sports betting operators in orderto show a merged odds module in a graphical user interface (GUI) of theaffiliate application. The first program logic can include executablelogic for receiving user data via the GUI of the affiliate application.The user data can include user consent data and credentials of a user.The first program logic can include executable logic for sending theuser data to the back-end transactional components. The first programlogic can include executable logic for generating a user accountaccording to user interaction with the GUI of the affiliate application.The first program logic can include executable logic for sending accountdata of the generated user account to the back-end transactionalcomponents. The first program logic can include executable logic forgenerating bets according to user interactions with an electronic walletand the GUI of the affiliate application. The first program logic caninclude executable logic for sending the bets to the back-endtransactional components. And, the first program logic can includeexecutable logic for tracking the bets via requesting and receivingcommunications of bet updates from the back-end transactionalcomponents.

Each one of the computing devices of the operators can include a secondprocessor and a second non-transitory computer-readable storage mediumfor tangibly storing thereon second program logic for execution by thesecond processor (the second program logic being a part of a back-endtransactional component of a sports betting operator). The secondcomputing device can include executable logic for sending an odds feedto an affiliate application based on requests by the affiliateapplication to show a merged odds module in a graphical user interface(GUI) of the affiliate application. The second computing device caninclude executable logic for integrating a workflow of the affiliateapplication to process and verify user data received from the affiliateapplication. The user data can include user consent data and credentialsof a user (as mentioned). The second computing device can includeexecutable logic for integrating the workflow of the affiliateapplication to generate a user account for the user according to theuser data. The second computing device can include executable logic forintegrating the workflow of the affiliate application to generate andplace a bet for the user according to bet and wallet data associatedwith the user received from the affiliate application. And, the secondcomputing device can include executable logic for sending bet updates tothe affiliate application according to requests for bet updates on theplaced bet received from the affiliate application.

For the purposes of this disclosure a module is a software, hardware, orfirmware (or combinations thereof) system, process or functionality, orcomponent thereof, that performs or facilitates the processes, features,and/or functions described herein (with or without human interaction oraugmentation). A module can include sub-modules. Software components ofa module can be stored on a computer readable medium for execution by aprocessor. Modules can be integral to one or more servers, or be loadedand executed by one or more servers. One or more modules can be groupedinto an engine or an application.

For the purposes of this disclosure the term “user”, “subscriber”“consumer” or “customer” should be understood to refer to a user of anapplication or applications as described herein and/or a consumer ofdata supplied by a data provider. By way of example, and not limitation,the term “user” or “subscriber” can refer to a person who receives dataprovided by the data or service provider over the Internet in a browsersession, or can refer to an automated software application whichreceives the data and stores or processes the data.

Those skilled in the art will recognize that the methods and systems ofthe present disclosure can be implemented in many manners and as suchare not to be limited by the foregoing exemplary embodiments andexamples. In other words, functional elements being performed by singleor multiple components, in various combinations of hardware and softwareor firmware, and individual functions, can be distributed among softwareapplications at either the client level or server level or both. In thisregard, any number of the features of the different embodimentsdescribed herein can be combined into single or multiple embodiments,and alternate embodiments having fewer than, or more than, all of thefeatures described herein are possible.

Functionality can also be, in whole or in part, distributed amongmultiple components, in manners now known or to become known. Thus,myriad software/hardware/firmware combinations are possible in achievingthe functions, features, interfaces and preferences described herein.Moreover, the scope of the present disclosure covers conventionallyknown manners for carrying out the described features and functions andinterfaces, as well as those variations and modifications that can bemade to the hardware or software or firmware components described hereinas would be understood by those skilled in the art now and hereafter.

Furthermore, the embodiments of methods presented and described asflowcharts in this disclosure are provided by way of example in order toprovide a more complete understanding of the technology. The disclosedmethods are not limited to the operations and logical flow presentedherein. Alternative embodiments are contemplated in which the order ofthe various operations is altered and in which sub-operations describedas being part of a larger operation are performed independently.

While various embodiments have been described for purposes of thisdisclosure, such embodiments should not be deemed to limit the teachingof this disclosure to those embodiments. Various changes andmodifications can be made to the elements and operations described aboveto obtain a result that remains within the scope of the systems andprocesses described in this disclosure.

What is claimed is:
 1. A method, comprising: generating, by an affiliateapplication of a betting affiliate, a first graphical user interface(GUI) for making a bet in order to show the first GUI to a user of acomputing device running at least part of the affiliate application; inresponse to a user starting a bet via the first GUI, generating, by theaffiliate application, a unique user identifier; sending to a bettingserver of a betting operator, by the affiliate application, the uniqueuser identifier, wherein the unique user identifier comprises a linkbetween the affiliate application, an operator application of thebetting operator, and a geolocation compliance component of ageolocation compliance provider; running, via the affiliate application,the geolocation compliance component and the operator application;initiating, by the operator application, geolocation checks via thegeolocation compliance component; in response to the operatorapplication receiving a returned state of the geolocation checks,sending, by the geolocation compliance component, a command to ageolocation compliance provider server associated with the geolocationcompliance provider; receiving, by the operator application, a responsesent from the geolocation service provider server, the responsecomprising location details; sending, by the operator application, apayload to a geolocation server of the operator to update a recentlocation of the user according to the location details; generating, bythe operator application, a second GUI for entering information of thebet, wherein the second GUI is generated in order to show the second GUIto the user via the first GUI of the affiliate application; and inresponse to information of the bet being entered and executed by theuser via the second GUI, sending, by the second GUI, the executedinformation along with the unique user identifier to the betting serverof the operator, wherein the betting server requests the geolocationserver of the operator to verify the recent location of the useraccording to the sent payload, and wherein the betting server allows thebet to be made when the recent location is valid.
 2. The method of claim1, wherein the payload comprises the unique user identifier and thelocation details to store and associate, in the geolocation server ofthe operator, a user session with the affiliate application, theoperator application, and the geolocation compliance component.
 3. Themethod of claim 2, wherein the location details are encrypted in thepayload.
 4. The method of claim 1, wherein the initiating of thegeolocation checks comprises transferring, by the affiliate application,control to the operator application and the geolocation compliancecomponent.
 5. The method of claim 1, comprising: in response to the userstarting the bet, initiating a user session with the affiliateapplication, the operator application, and the geolocation compliancecomponent.
 6. The method of claim 5, wherein the unique user identifieris a session parameter of the user session.
 7. The method of claim 1,wherein the geolocation checks are associated with the unique useridentifier.
 8. The method of claim 1, wherein the unique user identifieris sent to the betting server by the affiliate application in a query asa query parameter.
 9. The method of claim 1, wherein software librariesfor the geolocation compliance component are in software libraries forthe operator application.
 10. The method of claim 1, wherein the sendingof the command to the geolocation compliance provider server is also inresponse to the affiliate application initiating the sending of thecommand that includes accessing the software libraries for thegeolocation compliance component.
 11. A method, comprising: generating,by an affiliate application of a betting affiliate, a first graphicaluser interface (GUI) for making a bet in order to show the first GUI toa user of a computing device running at least part of the affiliateapplication; in response to a user starting a bet via the first GUI,generating, by the affiliate application, a unique user identifier;sending to a betting server of a betting operator, by the affiliateapplication, the unique user identifier, wherein the unique useridentifier comprises a link between the affiliate application, anoperator application of the betting operator, and a geolocationcompliance component of a geolocation compliance provider; running, viathe affiliate application, the geolocation compliance component and theoperator application; initiating, by the operator application,geolocation checks via the geolocation compliance component; requestingfrom a geolocation server of the operator, by the operator application,a command to send to a geolocation compliance provider server associatedwith the geolocation compliance provider; in response to the operatorapplication receiving a returned state of the geolocation checks,sending, by the geolocation compliance component, the command to thegeolocation compliance provider server; receiving, by the operatorapplication, a response sent from the geolocation service providerserver, the response comprising location details; sending, by theoperator application, a payload to a geolocation server of the operatorto update a recent location of the user according to the locationdetails; generating, by the operator application, a second GUI forentering information of the bet, wherein the second GUI is generated inorder to show the second GUI to the user via the first GUI of theaffiliate application; and in response to information of the bet beingentered and executed by the user via the second GUI, sending, by thesecond GUI, the executed information along with the unique useridentifier to the betting server of the operator, wherein the bettingserver requests the geolocation server of the operator to verify therecent location of the user according to the sent payload, and whereinthe betting server allows the bet to be made when the recent location isvalid.
 12. The method of claim 11, wherein the requesting of the commandto send to the geolocation compliance provider server comprisesinitiating in a background thread, by the operator application, ageolocation call request with the unique user identifier.
 13. The methodof claim 11, wherein the geolocation server of the operator stores theunique identifier and responds to the request by the operatorapplication, with returning a state of geolocation checks to theoperator application.
 14. The method of claim 11, wherein the payloadcomprises the unique user identifier and the location details to storeand associate, in the geolocation server of the operator, a user sessionwith the affiliate application, the operator application, and thegeolocation compliance component.
 15. The method of claim 14, whereinthe location details are encrypted in the payload.
 16. The method ofclaim 11, wherein the initiating of the geolocation checks comprisestransferring, by the affiliate application, control to the operatorapplication and the geolocation compliance component.
 17. The method ofclaim 11, comprising: in response to the user starting the bet,initiating a user session with the affiliate application, the operatorapplication, and the geolocation compliance component.
 18. The method ofclaim 17, wherein the unique user identifier is a session parameter ofthe user session.
 19. The method of claim 11, wherein software librariesfor the geolocation compliance component are in software libraries forthe operator application, and wherein the sending of the command to thegeolocation compliance provider server is also in response to theaffiliate application initiating the sending of the command thatincludes accessing the software libraries for the geolocation compliancecomponent.
 20. A non-transitory computer-readable storage mediumtangibly encoded with computer-executable instructions, that whenexecuted by a processor of computing device, performs a method, themethod comprising: generating, by an affiliate application of a bettingaffiliate, a first graphical user interface (GUI) for making a bet inorder to show the first GUI to a user of a computing device running atleast part of the affiliate application; in response to a user startinga bet via the first GUI, generating, by the affiliate application, aunique user identifier; sending to a betting server of a bettingoperator, by the affiliate application, the unique user identifier,wherein the unique user identifier comprises a link between theaffiliate application, an operator application of the betting operator,and a geolocation compliance component of a geolocation complianceprovider; running, via the affiliate application, the geolocationcompliance component and the operator application; initiating, by theoperator application, geolocation checks via the geolocation compliancecomponent; in response to the operator application receiving a returnedstate of the geolocation checks, sending, by the geolocation compliancecomponent, a command to a geolocation compliance provider serverassociated with the geolocation compliance provider; receiving, by theoperator application, a response sent from the geolocation serviceprovider server, the response comprising location details; sending, bythe operator application, a payload to a geolocation server of theoperator to update a recent location of the user according to thelocation details; generating, by the operator application, a second GUIfor entering information of the bet, wherein the second GUI is generatedin order to show the second GUI to the user via the first GUI of theaffiliate application; and in response to information of the bet beingentered and executed by the user via the second GUI, sending, by thesecond GUI, the executed information along with the unique useridentifier to the betting server of the operator, wherein the bettingserver requests the geolocation server of the operator to verify therecent location of the user according to the sent payload, and whereinthe betting server allows the bet to be made when the recent location isvalid.